import axios from 'axios'

const http = axios.create({
  baseURL: 'http://127.0.0.1:8000',
  timeout: 1000,
})

// 配置重试参数
const RETRY_COUNT = 3 // 最大重试次数
const RETRY_DELAY = 1000 // 重试延迟（毫秒）

// 响应拦截器（处理错误重试）
// http.interceptors.response.use(
//   (response) => response, // 成功响应直接返回
//   async (error) => {
//     const { config } = error

//     // 1. 判断是否配置了重试（允许全局关闭或单独配置）
//     if (!config || !config.retry) return Promise.reject(error)

//     // 2. 记录已重试次数（首次重试为 0）
//     config.__retryCount = config.__retryCount || 0

//     // 3. 判断是否超过最大重试次数
//     if (config.__retryCount >= RETRY_COUNT) {
//       return Promise.reject(error)
//     }

//     // 4. 判断是否需要重试（自定义条件）
//     const shouldRetry = (error) => {
//       // 网络错误（如断网）
//       if (!error.response) return true
//       // 服务器错误（5xx）或请求超时（408）
//       const { status } = error.response
//       return status >= 500 || status === 408
//     }

//     if (!shouldRetry(error)) {
//       return Promise.reject(error)
//     }

//     // 5. 增加重试次数
//     config.__retryCount += 1

//     // 6. 计算重试延迟（可选：指数退避，如 1s, 2s, 4s...）
//     const delay = RETRY_DELAY * Math.pow(2, config.__retryCount - 1)

//     // 7. 延迟后重新发起请求
//     return new Promise((resolve) => {
//       setTimeout(() => {
//         // 克隆配置，避免修改原配置
//         const retryConfig = { ...config }
//         // 重新发起请求
//         resolve(http(retryConfig))
//       }, delay)
//     })
//   },
// )

export default http
